Handheld data processing devices, sometimes known as “personal digital assistants”, are becoming very popular tools for information storage and retrieval, messaging and other functions. Such devices have the ability to store a significant amount of data, including calendar, address book, tasks and numerous other types of data for business and personal use. Most handheld data processing devices have the ability to connect to a personal computer for data exchange, and many are equipped for wireless communications using, for example, conventional email messaging systems. One of the primary advantages of a handheld data processing device is its small size, and to maintain this the space inside the device must be used efficiently.
A typical handheld data processing device has a processor for processing the data, which accesses data from a non-volatile memory storage device that retains data even when no power is being supplied to the chip, such as a NOR flash chip. Typically the processor caches data read from non-volatile memory, such as NOR flash, to a volatile storage device, such as SRAM, that retains data only when power is being supplied to the chip (i.e. when the handheld data processing device is on). Accordingly, the processor in conventional handheld data processing devices is designed and programmed to read data from NOR flash and write the data to SRAM for use or modification; and to read data from SRAM and write modified data to NOR flash for long term storage.
Another type of non-volatile memory, known as NAND flash, contains more memory density than a comparable NOR flash and is less expensive than NOR flash. However, whereas data is read out of and written to NOR flash memory one byte or word at a time, data must be read out of and written to NAND flash memory in blocks or “sectors” of data. For example, reading a 16-bit data value stored in NOR flash requires one read access to the flash device, whereas to read the same 16-bit value from NAND flash requires reading out an entire 512 byte sector.
In a digital processing system that caches the contents from a NAND flash in SDRAM on a sector by sector basis, it is possible for any portion of the cached data in the SDRAM to be modified by software at any time. The NAND flash can be updated with this modified data at a later point in time when it is convenient for software. Unfortunately, when the power source is disconnected (for example in the case of a handheld digital processing device, the battery is removed), there is not enough time for software to update the NAND flash with the modified data from SDRAM before power is lost completely. However, due to space constraints it is not feasible to provide a long lasting secondary power supply in a handheld data processing device.
It would accordingly be advantageous to provide a system and method which ensures that no data will be lost due to a power failure, that can write data to the non-volatile memory during a short backup power interval so that the secondary power supply does not require excessive space.